package com.songlanyun.modules.config.controller.admin;

import com.songlanyun.common.annotation.SysLog;
import com.songlanyun.common.utils.PageUtils;
import com.songlanyun.common.utils.R;
import com.songlanyun.common.validator.ValidatorUtils;
import com.songlanyun.modules.config.entity.SystemUserRoleConfigEntity;
import com.songlanyun.modules.config.model.SystemUserRoleConfigDTO;
import com.songlanyun.modules.config.service.SystemUserRoleConfigService;
import com.songlanyun.modules.user.controller.AbstractController;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Map;


/**
 * 平台的会员等级配置，（本系统，不提供商家创建自己的等级，只能系统自动给商家初始化）
 *
 * @author Mark
 * @email sunlightcs@gmail.com
 * @date 2020-11-05 18:58:49
 */
@RestController
@RequestMapping("admin/config/systemUserRoleConfig")
public class SystemUserRoleConfigAdminController extends AbstractController {
    @Autowired
    private SystemUserRoleConfigService systemUserRoleConfigService;

    /**
     * 列表
     */
    @GetMapping("/list")
//    @RequiresPermissions("config:systemUserRoleConfig:list")
    public R list(@RequestParam Map<String, Object> params) {
        PageUtils page = systemUserRoleConfigService.queryPage(params);

        return R.ok().put("page", page);
    }



    /**
     * 保存/修改
     */
    @SysLog("保存修改平台的会员等级配置")
    @PostMapping("/save")
//    @RequiresPermissions("config:systemUserRoleConfig:save")
    public R save(@RequestBody SystemUserRoleConfigDTO dto) {
        verifyAdmin();
        ValidatorUtils.validateEntity(dto);

        if (dto.getId() == null) {
            //保存
            SystemUserRoleConfigEntity entity = new SystemUserRoleConfigEntity();
            BeanUtils.copyProperties(dto, entity);
            systemUserRoleConfigService.save(entity);
        } else {
            //修改
            SystemUserRoleConfigEntity entity = systemUserRoleConfigService.getById(dto.getId(), true);
            BeanUtils.copyProperties(dto, entity);//克隆一份

            systemUserRoleConfigService.updateById(entity);
        }

        return R.ok();
    }


}
